# Q. What is this file?
# A. This file contains options which allow you to configure your multiworld experience while allowing
#    others to play how they want as well.
#
# Q. How do I use it?
# A. The options in this file are weighted. This means the higher number you assign to a value, the
#    more chances you have for that option to be chosen. For example, an option like this:
#
#    map_shuffle:
#      on: 5
#      off: 15
#
#    Means you have 5 chances for map shuffle to occur, and 15 chances for map shuffle to be turned
#    off.
#
# Q. I've never seen a file like this before. What characters am I allowed to use?
# A. This is a .yaml file. You are allowed to use most characters.
#    To test if your yaml is valid or not, you can use this website:
#        http://www.yamllint.com/
#    You can also verify that your Archipelago options are valid at this site:
#        https://archipelago.gg/check

# Your name in-game, limited to 16 characters.
#     {player} will be replaced with the player's slot number.
#     {PLAYER} will be replaced with the player's slot number, if that slot number is greater than 1.
#     {number} will be replaced with the counter value of the name.
#     {NUMBER} will be replaced with the counter value of the name, if the counter value is greater than 1.
name: Player{number}

# Used to describe your yaml. Useful if you have multiple files.
description: Default Rabbit and Steel Template

game: Rabbit and Steel
requires:
  version: 0.6.7 # Version of Archipelago required for this yaml to work as expected.

Rabbit and Steel:
  ################
  # Game Options #
  ################
  progression_balancing:
    # A system that can move progression earlier, to try and prevent the player from getting stuck and bored early.
    # 
    # A lower setting means more getting stuck. A higher setting means less getting stuck.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 0
    # Maximum value is 99
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-0-99: 0 # random value between 0 and 99
    disabled: 0 # equivalent to 0
    normal: 50 # equivalent to 50
    extreme: 0 # equivalent to 99

  accessibility:
    # Set rules for reachability of your items/locations.
    # 
    # **Full:** ensure everything can be reached and acquired.
    # 
    # **Minimal:** ensure what is needed to reach your goal can be acquired.
    full: 50
    minimal: 0

  ###################
  # Kingdom Options #
  ###################
  kingdom_sanity:
    # Kingdoms must be found before they can be visited
    'false': 0
    'true': 50

  run_type:
    # Determines which kingdoms can be visited during a run
    # Kingdom: Only base kingdoms will be visited
    # Extra: Only extra kingdoms will be visited
    # Either: Any kingdom can be visited determined by the starting route
    # Combined: Any kingdom can be visited
    kingdom: 0
    extra: 0
    either: 0
    combined: 50

  max_kingdoms_per_run:
    # How many kingdoms you visit before heading to the pale keep or Reflecting Pool.
    # If progressive regions and/or kingdom sanity is on,
    # your run ends in a failure if you are not allowed to visit enough kingdoms.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 1
    # Maximum value is 8
    3: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-1-8: 0 # random value between 1 and 8

  progressive_regions:
    # Introduces items that increases the amount regions you are currently allowed to visit in a run.
    # Includes Pale Keep/Looping Hallway and Moonlit Pinnacle/Reflecting Pool.
    # Outskirts or Geode is always accessible.
    'false': 50
    'true': 0

  excluded_kingdoms:
    # What kingdoms, if any, should not be added to the pool of locations.
    # There will always be a generic location that any class can obtain.
    # Available Options: [ "Scholar's Nest", "King's Arsenal", "Red Darkhouse", "Churchmouse Streets", "Emerald Lakeside",
    #                     "Darkhouse Depths", "Atelier Aurum", "Subterra Sanctum"]
    # Additionally you can exclude one of Kingdom Outskirts/Crack In The Geode, The Pale Keep/Looping Hallway,
    # and Moonlit Pinnacle/Reflecting Pool depending on your RunType
    []

  kingdom_sanity_kingdom_order:
    # Introduces another requirement to reaching a kingdom rather than just receiving the item.
    # You also need to have at least one kingdom from all the previous orders.
    # Kingdom Order is always used if you have Progressive Regions but not Kingdom Sanity,
    # so you can't access all kingdoms after receiving one progressive region.
    'false': 50
    'true': 0

  kingdom_order:
    # Gates visiting a kingdom behind being able to reach the order
    # With Progressive Regions, the order directly ties to the number of progressive regions needed
    # With Kingdom Sanity, you must be able to visit at least one kingdom in each previous order
    # "0" will randomly assign it to an unfilled position if there are no valid positions unfilled,
    # it will place it in the last position that doesn't have more than the others.
    # Excluded kingdoms are not considered.
    # You will be able to choose any kingdom as your first kingdom in a route if logically accessible.
    # Throws an error if the number of 'valid' kingdoms is less than 'All Kingdoms'
    Atelier Aurum: 0
    Churchmouse Streets: 0
    Darkhouse Depths: 0
    Emerald Lakeside: 0
    King's Arsenal: 0
    Red Darkhouse: 0
    Scholar's Nest: 0
    Subterra Sanctum: 0

  ####################
  # Gameplay Options #
  ####################
  class_sanity:
    # Classes must be found before they can be played
    'false': 50
    'true': 0

  exclude_class:
    # What class, if any, should not be accounted for in logic.
    # Throughout the run you will not be able to play that class at all.
    # Available Options: ["Wizard", "Assassin", "Heavyblade", "Dancer", "Druid", "Spellsword", "Sniper", "Bruiser",
    #                     "Defender", "Ancient", "Hammermaid", "Pyromancer", "Grenadier", "Shadow"]
    []

  checks_per_class:
    # What classes should have locations associated with them.
    # There will always be a generic location that any class can obtain.
    # Available Options: ["Wizard", "Assassin", "Heavyblade", "Dancer", "Druid", "Spellsword", "Sniper", "Bruiser",
    #                     "Defender", "Ancient","Hammermaid", "Pyromancer", "Grenadier", "Shadow"]
    # _ALL can be used to put checks on all classes
    []

  random_class:
    # How many classes to randomly add to checks per class.
    # Will not choose from classes that have been excluded, or already included.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 0
    # Maximum value is 14
    0: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-0-14: 0 # random value between 0 and 14

  item_sanity:
    # What is required to have an item appear in a non AP treasuresphere
    # None: Any item is always available
    # Itemset: Receiving the itemset unlocks all the items in the itemset
    # Full: Need to get each individual item unlocked
    none: 50
    itemset: 0
    full: 0

  checks_per_item_in_chest:
    # Each item in a standard chest is an archipelago item.
    # Shuffles treasurespheres into the item pool, which will contain the non AP items.
    # Does not add one check per class if 'Checks Per Class' is on
    'false': 50
    'true': 0

  upgrade_sanity:
    # What is required to have an upgrade appear in a shop, will randomly be chosen between available options still
    # None: Any upgrade is always available
    # Simple: Just need to get 'Ruby' item to unlock all the Ruby upgrades
    # Full: Need to get 'Ruby Primary' item to unlock the ruby upgrade for the primary
    none: 50
    simple: 0
    full: 0

  potion_sanity:
    # How the top shelf of the shop appears
    # None: Default behavior
    # Locked: Hp and level will be in their position when their item is found, and potions are added to the pool as they are found
    # Roulette: Randomly fills the slots with unlocked 'potions', meaning hp and level are not guaranteed
    none: 50
    locked: 0
    roulette: 0

  shop_sanity:
    # Shops contain ap items to purchase, ap item is required to purchase before you can purchase the normal shop item in that slot
    # None: Shops do not carry ap items
    # Global: Shops carry the same ap items, and only need to be purchased once to unblock that slot
    # Regional: Each kingdom contains their own ap items that need to be purchased
    none: 50
    global: 0
    regional: 0

  ################
  # Goal Options #
  ################
  goal_condition:
    # Set your Goal Condition.
    # Shira: Defeat Shira x number of times, which is configured below
    shira: 50
    witch: 0
    both: 0

  shira_defeats:
    # How many unique classes must defeat Shira to goal if included in goal
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 1
    # Maximum value is 14
    1: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-1-14: 0 # random value between 1 and 14

  witch_defeats:
    # How many unique classes must defeat Witch to goal if included in goal
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 1
    # Maximum value is 14
    1: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-1-14: 0 # random value between 1 and 14

  ###########################
  # Item & Location Options #
  ###########################
  local_items:
    # Forces these items to be in their native world.
    []

  non_local_items:
    # Forces these items to be outside their native world.
    []

  start_inventory:
    # Start with the specified amount of these items. Example: "Bomb: 1"
    {}

  start_hints:
    # Start with these item's locations prefilled into the ``!hint`` command.
    []

  start_location_hints:
    # Start with these locations and their item prefilled into the ``!hint`` command.
    []

  exclude_locations:
    # Prevent these locations from having an important item.
    []

  priority_locations:
    # Prevent these locations from having an unimportant item.
    []

  item_links:
    # Share part of your item pool with other players.
    []

  plando_items:
    # Generic items plando.
    []
